﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Threading.Tasks;

// 工具类文件：把功能函数封装在一起。
namespace Student.Tools
{
   
    internal class SaveData
    {
        public string Name { get; set; }
        // 存到本地的方法 参数1 传递存储的路径， 参数2 存储的数据
        // 把对象data 存储在对应的path路径下
        //Save("./1.txt",{})
        public static void Save(string path, object data)
        {
            //1在指定路径下 创建一个文件流  ，创建的模式
            FileStream fs = new FileStream(path, FileMode.Create);

            //2 创建一个二进制序列化格式器 （创建一个工具，就是把对象格式化成字符串）
                 BinaryFormatter bf = new BinaryFormatter();

            //3开始转换  把data转成字符串进行写入
            bf.Serialize(fs, data);

            //4 关闭文件流  一般一个读写操作结束了 需要关闭文件流
            fs.Close();
        }


        // 从本地取出数据的方法 参数是路径
        public static object  QuData(string path)
        {
            try
            {
                // 1 创建文件流对象 
                FileStream fs = new FileStream(path, FileMode.Open);
                //2 创建一个序列化工具
                BinaryFormatter bf = new BinaryFormatter();
                //3 反序列化操作 把二进制转成对象的过程
                object data = bf.Deserialize(fs);

                //4 关闭文件流
                fs.Close();
                return data;
            }
            catch (Exception ex)
            {
                throw new Exception("格式化出错");
            }

        }


    }
}
